﻿using Sidvall.Collections;

namespace Sidvall.AuthorizationManager.Net.Services.V1.Model
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1506:AvoidExcessiveClassCoupling")]
    public partial class EntityCache
    {
        #region Public Members

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeCollectionItem AuthorizationScopeCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeExportCollectionItem AuthorizationScopeExportCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceActionCollectionItem AuthorizationScopeResourceActionCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceActionClaimCollectionItem AuthorizationScopeResourceActionClaimCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceItemCollectionItem AuthorizationScopeResourceItemCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeResourceItemClaimCollectionItem AuthorizationScopeResourceItemClaimCache { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")]
        public AuthorizationScopeUserCollectionItem AuthorizationScopeUserCache { get; set; }
        
        #region Clear

        public void Clear()
        {
            this.AuthorizationScopeCache = null;
            this.AuthorizationScopeExportCache = null;
            this.AuthorizationScopeResourceActionCache = null;
            this.AuthorizationScopeResourceActionClaimCache = null;
            this.AuthorizationScopeResourceItemCache = null;
            this.AuthorizationScopeResourceItemClaimCache = null;
            this.AuthorizationScopeUserCache = null;
        }

        #endregion
        
        #endregion
        #region Constructors

        public EntityCache()
        {
        }

        #endregion
    }
}